// pages/blog-edit/blog-edit.js
//最大输入个数
const MAX_WORD_NUM = 140
const MAX_IMG_NUM = 9
const db = wx.cloud.database()
let userInfo = {}
//文字内容
let content = ''
Page({

  /**
   * 页面的初始数据
   */
  data: {
    //输入文字个数
    wordsNum: 0,
    footerBottom: 0,
    images: [],
    selectPhoto: true,
  },

  send(){
    // 数据 -> 云数据库
    //数据库： 内容、图片fileid openid 昵称 头像 时间
    //图片 -> 云存储 返回fileid

if(content.trim() === ''){
  wx.showModal({
    title: '请输入内容',
    content: '',
  })
  return
}
  wx.showLoading({
    title: '操作中',
    mask:true,
  })
  //使用promise操作异步任务把任务放进数组
    let promiseArr = []
    let fileIds = []
    //图片上传,这个接口一次只能读一张
  for(let i = 0, len = this.data.images.length;i<len; i++){
let task = new Promise((resolve, reject) => {
  let item = this.data.images[i]
  //针对不同的文件拓展名 先转义. \. 后再匹配任意的字母
  let suffix = /\.\w+$/.exec(item)[0]
  wx.cloud.uploadFile({
    cloudPath: 'blog/' + Date.now() + '-' + Math.random() * 10000000 + suffix,
    filePath: item,

    success: (res) => {
      console.log(res)
      fileIds = fileIds.concat(res.fileID)
      resolve()
    },

    fail: (err) => {
      console.log(err)
      reject()
    }
  })
})
promiseArr.push(task)

}
  //存到云数据库,在小程序端插入相关内容自带openid
Promise.all(promiseArr).then((res)=>{
  db.collection('blog').add({
    data:{
      ...userInfo,
      content,
      img: fileIds,
      createTime: db.serverDate(),//取到服务端时间
    }
  }).then((res)=>{
    wx.hideLoading()
    wx.showToast({
      title: '发布成功',
    })

    //返回上一级 刷新
    wx.navigateBack()
    //子界面调用父界面功能
    const pages = getCurrentPages()
    //取到上一个界面
    const prevPage = pages[pages.length - 2]
    prevPage.onPullDownRefresh()
  })
}).catch((err)=>{
  wx.hideLoading()
  wx.showToast({
    title: '发布失败',
  })
})

  
  },

  onPreviewImage(event){
    wx.previewImage({
      urls: this.data.images,
      current: event.target.dataset.imgsrc
    })

  },

  onInput(event) {
    console.log(event.detail.value)
    let wordsNum = event.detail.value.length
    if (wordsNum >= MAX_WORD_NUM){
      wordsNum = `最大字数为${MAX_WORD_NUM}`
    }else{
      wordsNum = `您还可以输入${MAX_WORD_NUM-wordsNum}字`
    }
    this.setData({
      wordsNum
    })
    content = event.detail.value
  },

  onFocus(event){
    //模拟器测试的键盘高度是0
    this.setData({
      footerBottom: event.detail.height
    })
  },
  onBlur(){
    this.setData({
      footerBottom: 0,
    })
  },

  onChooseImage(){
    let max = MAX_IMG_NUM - this.data.images.length
    wx.chooseImage({
      count: max,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success: (res)=> {
        console.log(res)
        this.setData({
          images: this.data.images.concat(res.tempFilePaths)
        })
        //选择一次之后还可以再选几张
        max = MAX_IMG_NUM -this.data.images.length 
        this.setData({
          selectPhoto: max<= 0 ? false: true
        })
      },
    })
  },
  //splice返回的是被删除的元素
  onDelImage(event){
    this.data.images.splice(event.target.dataset.index, 1)
    this.setData({
      images: this.data.images
    })
    if (this.data.images.length == MAX_IMG_NUM-1){
      this.setData({
        selectPhoto: true
      })
    }
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options)
    userInfo = options
  },

  
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})